package com.zmm.weblog.web.cglib;


import org.checkerframework.checker.units.qual.A;

import java.lang.reflect.Proxy;

public class TestJdkLib {
    public static int A = 8;
    public static void main(String[] args) {
        // 被代理对象
        AppleJdkLib appleJdkLib = new AppleJdkLibImpl();
        // 代理方式对象
        ShoppingProxyJdkLib shoppingProxyJdkLib = new ShoppingProxyJdkLib(appleJdkLib);
        // 生成代理对象
        AppleJdkLib appleJdkLibJD = (AppleJdkLib) Proxy.newProxyInstance(
            appleJdkLib.getClass().getClassLoader(), // 类加载器
            appleJdkLib.getClass().getInterfaces(), // 被代理接口
                shoppingProxyJdkLib  // 代理方式对象
        );

        // 执行未增强的方法
        System.out.println("执行未增强的方法");
        String sell = appleJdkLib.sell(6000);
        System.out.println(sell);
        appleJdkLib.repair();

        System.out.println("--------------------------");

        // 执行增强后的方法
        System.out.println("执行增强后的方法");
        String sellProxy = appleJdkLibJD.sell(6000);
        System.out.println(sellProxy);
        appleJdkLibJD.repair();
}
}